<?php


namespace app\admin;


use app\BaseController;

class BashService extends BaseController
{
    /**
     * AES加密位数密钥key
     * @var string
     */
    protected $CKey = 'BC1F5E3BAEE198AC';

    /**
     * AES加密位初始化向量
     * @var string
     */
    protected $CIv = '1F5E3BAEE198ACE1';

    /**
     * 1.AES加密位数跟密钥key有关, 以下是密钥位数和加密对应关系
     * 16 => AES-128
     * 24 => AES-192
     * 32 => AES-256
     * 2、iv是初始化向量. 超过16字节或者不足16字节都会被补足16字节或者截断到16字节。由于AES是块加密，铭文被分割成固定长度的块（一般是16字节长度），所以iv也是16字节。
     * 3、CBC是加密模式
     * @var string
     */
    protected $CMethod = 'AES-128-CBC';


    protected function initialize()
    {
        parent::initialize(); // TODO: Change the autogenerated stub
    }

    //信息解码（注：前端用crypto-js编码）
    //1、AES加密位数跟密钥key有关, 以下是密钥位数和加密对应关系
    //  16 => AES-128
    //  24 => AES-192
    //  32 => AES-256
    //2、iv是初始化向量. 超过16字节或者不足16字节都会被补足16字节或者截断到16字节。由于AES是块加密，铭文被分割成固定长度的块（一般是16字节长度），所以iv也是16字节。
    //3、CBC是加密模式
    protected function strDecode($data){
        return json_decode(trim(openssl_decrypt($data, $this->CMethod, $this->CKey, 0,$this->CIv)),true);
    }

    //客户端id 转字符
    protected function clientStr($clientId){
        $cStr='';
        switch ($clientId){
            case 1:
                $cStr = 'pc'; break;
            case 2:
                $cStr = 'wap';break;
            case 3:
                $cStr = 'android';break;
            case 4:
                $cStr = 'ios';break;
            case 5:
                $cStr = 'wxxcx';break;
            case 5:
                $cStr = 'qqxcx';break;
            default:
        }
        return $cStr;
    }

}